package cn.zn.modules.money.cur.service;

import cn.zn.modules.money.cur.entity.TMoneyInfo;
import cn.zn.modules.money.cur.entity.vo.*;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TMoneyInfoService extends IService<TMoneyInfo> {
    /**
     * 更新冻结
     *
     * @param projectCode
     * @param cateCode
     * @param freezeMoney
     */
    void updateFreeze(String projectCode, String cateCode, Double freezeMoney);

    /**
     * 查询可用金额
     *
     * @param projectCode
     * @param cateCode
     * @return
     */
    MoneyAvailableMoneyVO queryAvailableMoney(String projectCode, String cateCode);

    /**
     * 查询可用项目
     *
     * @return
     */
    List<MoneyAvailableProjectVO> queryAvailableProjects();

    /**
     * 查询可用经济分类
     *
     * @param projectCode
     * @return
     */
    List<MoneyAvailableCateVO> queryAvailableCates(String projectCode);

    /**
     * 经费汇总查询
     *
     * @return
     */
    List<MoneySumVO> querySum();

    /**
     * 汇总明细查询
     *
     * @param tMoneyInfo
     * @return
     */
    List<TMoneyInfo> querySumDetail(TMoneyInfo tMoneyInfo);

    /**
     * 查询暂停
     *
     * @param id
     * @return
     */
    List<TMoneyInfo> querySuspended(String id);

    /**
     * 保存暂停
     *
     * @param tMoneyInfo
     */
    void saveSuspended(TMoneyInfo tMoneyInfo);

    /**
     * 按经济分类大类统计，包括所有大类
     *
     * @return
     */
    List<MoneyCateMainNameSumVO> querySumForCateMainAll();
}
